#需要token验证的页面，请在action的网络请求中使用此方法
#完全可以写成一个redux中间件
Toast = require('antd-mobile/lib/toast')
{fetchLogOut} = require('../actions/userInfo.js')
#参数说明：
#dispatch--
#promise--promise网络请求
#success--成功的回调（一般为completeAction）
#fail--失败的回调（failAction）
tFetch = (dispatch,promise,success,fail)->
  promise.then (res)->
    debugger
    if res.ok
      return res.json()
    else if res.status is 401
        Promise.reject new Error('您的账号已在其他设备登陆，请重新登陆。')
    else
        Promise.reject new Error('获取数据错误')
  .then (json)->
    success?(json)
  .catch (err)->
    if err.message is '您的账号已在其他设备登陆，请重新登陆。'
      Toast.fail '您的账号已在其他设备登陆，请重新登陆',->
        dispatch fetchLogOut()
        fail?()
    else
      Toast.fail err.message
      fail?()

module.exports = tFetch
